今天會學到
methods跟properties有異曲同工之妙,簡單來說methods是在特定型別(class、struct、enum)裡的函式(function)
需要把特定型別(class、struct、enum)實例化才可以使用裡面的方法,前面有說過特定型別是藍圖,那要實際做出成品才有功能可以用,不然就是紙上談兵罷了。下面我們用官方的範例說明
class Counter {
var count = 0 //這是儲存屬性
func increment() { //只要在class內的func都是方法(methods)
count += 1
}
func increment(by amount: Int) {
count += amount
}
func reset() {
count = 0
}
}
那我們剛剛已經建立好藍圖了,所以現在需要實例化才能使用實體方法
let counter = Counter() //實例化,所以count會有預設值0
counter.increment() // count的值變成1了
counter.increment(by: 5) // count的值變成6了
counter.reset() // count的值變回0了
型別方法跟型別屬性是一樣的概念,單來說我們使用static
來宣告function,這樣不需要實例化就可以使用Type Methods。如果methods是建立在class裡面的話,可以把static改成class宣告,下面使用官方範例。
class SomeClass {
class func someTypeMethod() {
// 程式碼
}
}
SomeClass.someTypeMethod() //不用實例化就可以直接使用方法
今天教的東西跟昨天的屬性是相同概念的,可以一起看